package com.project.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.project.entity.qo.ImgQo;
import com.project.entity.qo.MenuQo;
import com.project.entity.vo.MenuVo;
import com.project.entity.vo.MenuVo2;
import com.project.result.ResponseResult;
import com.project.entity.vo.PageMenuVo;

import java.util.List;

/**
 * @author qjj
 * @create 2022/3/29 12:13
 */
public interface MenuService {
    /**
     * 查看菜单
     */
    List<MenuVo> selectMenuList();

    /**
     * 分页查询
     * @param current
     * @return
     */
    ResponseResult<Page<MenuVo2>> selectMenuPage(Integer current);

    /**
     * 根据类型查询
     * @param type
     * @return
     */
    ResponseResult<List<MenuVo>> selectMenuByType(Integer type,Long menuId);

    /**
     * 根据图片id删除图片
     * @param imgId
     * @return
     */
    ResponseResult<String> deleteImg(Long imgId);

    /**
     * 添加图片
     * @param imgQo
     * @return
     */
    ResponseResult<String> addImg(ImgQo imgQo);

    /**
     * 编辑菜
     * @param menuQo  菜的信息
     * @return
     */
    ResponseResult<String> updateMenu(MenuQo menuQo);

    /**
     * 是否售空，0代表售空，1代表正常，2代表审核中
     * @param menuQo 菜的信息
     * @return
     */
    ResponseResult<String> updateStatus(MenuQo menuQo);

    /**
     * 添加新菜品
     * @param menuQo 菜的信息
     * @return
     */
    ResponseResult<String> addMenu(MenuQo menuQo);

    /**
     * 删除菜品
     * @param id 菜品id
     * @return
     */
    ResponseResult<String> deleteMenu(List<Long> id);

    /**
     * 点赞
     * @param menuId 菜品id
     * @return
     */
    ResponseResult<String> addPraiseNumber(Long menuId);

    /**
     * 根据状态查询
     * @param status
     * @return
     */
    List<MenuVo> selectMenuBystatus(Integer status);

    /**
     * 根据点赞排行
     * @return
     */
    ResponseResult<List<MenuVo>> rankingList();

    /**
     * 根据名字模糊查询
     * @param name
     * @return
     */
    ResponseResult<List<MenuVo>> selectMenuByName(String name);
}
